// 抽象类(Abstract Classes)
// 约束子类必须有某一个成员, 不同于接口(interface, 只是成员的抽象, 不包含成员的实现), 抽象类包含成员的实现
// 只能被继承 不能被实例
export {}

abstract class Animal {
    eat(food: string): void{
        console.log(`呼噜噜的吃: ${food}`)
    }
    abstract run(distance: number): void // 抽象方法 abstract function 不需要方法提 子类必须实现
}

class Dog extends Animal{
    run(distance: number):void{
        console.log(`四脚爬行: ${distance}`)
    }
}

const a = new Dog()
a.eat('apple')
a.run(2000)
































